﻿/**
 * AviTagsWrapper is a wrapper for abcAVI written in C# 
 * Copyright (C) 2010 Chris Meyer
 * 
 * This file is part of AviTagsWrapper.
 * 
 * AviTagsWrapper is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Lesser General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.

 * AviTagsWrapper is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Lesser General Public License for more details.
 * 
 * You should have received a copy of the GNU Lesser General Public License
 * along with AviTagsWrapper.  If not, see <http://www.gnu.org/licenses/>.
 * 
 * Chris Meyer (chris.meyer@ngsoftonline.com)
 * http://ngsoftonline.com/
 * 
 **/
using System.Collections.Generic;
using System.Linq;
using abcAVI;

namespace AviTagsWrapper {

    public class ExtendedInfoTags {

        public static IEnumerable<string> GetExtendedInfoTagsPropertyNames() {
            return Util.GetExtendedInfoTagsProperties().Select(p => p.Name);
        }

        [TagId(CTags_ID.IDT_INAM)]
        public string Title { get; set; }

        [TagId(CTags_ID.IDT_IART)]
        public string Director { get; set; }

        [TagId(CTags_ID.IDT_ICOP)]
        public string Copyright { get; set; }

        [TagId(CTags_ID.IDT_IPRD)]
        public string Product { get; set; }

        [TagId(CTags_ID.IDT_ICRD)]
        public string CreationDate { get; set; }

        [TagId(CTags_ID.IDT_IGNR)]
        public string Genre { get; set; }

        [TagId(CTags_ID.IDT_ISGN)]
        public string SecondaryGenre { get; set; }

        [TagId(CTags_ID.IDT_ISBJ)]
        public string Subject { get; set; }

        [TagId(CTags_ID.IDT_IKEY)]
        public string Keywords { get; set; }

        [TagId(CTags_ID.IDT_ICMT)]
        public string Comments { get; set; }

        [TagId(CTags_ID.IDT_IWRI)]
        public string WrittenBy { get; set; }

        [TagId(CTags_ID.IDT_IPRO)]
        public string ProducedBy { get; set; }

        [TagId(CTags_ID.IDT_ICNM)]
        public string Cinematographer { get; set; }

        [TagId(CTags_ID.IDT_IPDS)]
        public string ProductionDesigner { get; set; }

        [TagId(CTags_ID.IDT_IEDT)]
        public string EditedBy { get; set; }

        [TagId(CTags_ID.IDT_ICDS)]
        public string CostumeDesigner { get; set; }

        [TagId(CTags_ID.IDT_IMUS)]
        public string MusicBy { get; set; }

        [TagId(CTags_ID.IDT_ISTD)]
        public string ProductionStudio { get; set; }

        [TagId(CTags_ID.IDT_IDST)]
        public string DistributedBy { get; set; }

        [TagId(CTags_ID.IDT_ICNT)]
        public string Country { get; set; }

        [TagId(CTags_ID.IDT_ILNG)]
        public string Language { get; set; }

        [TagId(CTags_ID.IDT_IRTD)]
        public string Rating { get; set; }

        [TagId(CTags_ID.IDT_ISTR)]
        public string Starring { get; set; }

        [TagId(CTags_ID.IDT_ISFT)]
        public string Software { get; set; }

        [TagId(CTags_ID.IDT_ITCH)]
        public string EncodedBy { get; set; }

        [TagId(CTags_ID.IDT_IENG)]
        public string DigitizedBy { get; set; }

        [TagId(CTags_ID.IDT_IWEB)]
        public string InternetAddress { get; set; }

        [TagId(CTags_ID.IDT_IDIT)]
        public string DigitizingDate { get; set; }

        [TagId(CTags_ID.IDT_ISMP)]
        public string SMPTETimeCode { get; set; }

        [TagId(CTags_ID.IDT_ISRF)]
        public string SourceForm { get; set; }

        [TagId(CTags_ID.IDT_IMED)]
        public string Medium { get; set; }

        [TagId(CTags_ID.IDT_ISRC)]
        public string Source { get; set; }

        [TagId(CTags_ID.IDT_IARL)]
        public string ArchivalLocation { get; set; }

        [TagId(CTags_ID.IDT_ICMS)]
        public string CommissionedBy { get; set; }

        [TagId(CTags_ID.IDT_IPRT)]
        public string Part { get; set; }

        [TagId(CTags_ID.IDT_IFRM)]
        public string TotalNumberOfParts { get; set; }

        [TagId(CTags_ID.IDT_ICRP)]
        public string Cropped { get; set; }

        [TagId(CTags_ID.IDT_ISHP)]
        public string Sharpness { get; set; }

        [TagId(CTags_ID.IDT_IDIM)]
        public string Dimensions { get; set; }

        [TagId(CTags_ID.IDT_ILGT)]
        public string Lightness { get; set; }

        [TagId(CTags_ID.IDT_IDPI)]
        public string DotsPerInch { get; set; }

        [TagId(CTags_ID.IDT_IPLT)]
        public string PaletteSetting { get; set; }

        [TagId(CTags_ID.IDT_IAS1)]
        public string FirstLanguage { get; set; }

        [TagId(CTags_ID.IDT_IAS2)]
        public string SecondLanguage { get; set; }

        [TagId(CTags_ID.IDT_IAS3)]
        public string ThirdLanguage { get; set; }

        [TagId(CTags_ID.IDT_IAS4)]
        public string ForthLanguage { get; set; }

        [TagId(CTags_ID.IDT_IAS5)]
        public string FifthLanguage { get; set; }

        [TagId(CTags_ID.IDT_IAS6)]
        public string SixthLanguage { get; set; }

        [TagId(CTags_ID.IDT_IAS7)]
        public string SeventhLanguage { get; set; }

        [TagId(CTags_ID.IDT_IAS8)]
        public string EighthLanguage { get; set; }

        [TagId(CTags_ID.IDT_IAS9)]
        public string NinthLanguage { get; set; }

        [TagId(CTags_ID.IDT_ICAS)]
        public string DefaultAudioStream { get; set; }

        [TagId(CTags_ID.IDT_IBSU)]
        public string BaseUrl { get; set; }

        [TagId(CTags_ID.IDT_ILGU)]
        public string LogoUrl { get; set; }

        [TagId(CTags_ID.IDT_ILIU)]
        public string LogoIconUrl { get; set; }

        [TagId(CTags_ID.IDT_IWMU)]
        public string WatermarkUrl { get; set; }

        [TagId(CTags_ID.IDT_IMIU)]
        public string MoreInfoUrl { get; set; }

        [TagId(CTags_ID.IDT_IMBI)]
        public string MoreInfoBannerImage { get; set; }

        [TagId(CTags_ID.IDT_IMBU)]
        public string MoreInfoBannerUrl { get; set; }

        [TagId(CTags_ID.IDT_IMIT)]
        public string MoreInfoText { get; set; }
    }
}
